from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(主动技能):
    名称 = "源光斩"
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [16, 161]
    无色消耗 = 0
    data0 = [0, 1569, 1728, 1887, 2048, 2209, 2367, 2526, 2686, 2845, 3008, 3161, 3324, 3485, 3644, 3804, 3961, 4122, 4282, 4442, 4603, 4760, 4920, 5080, 5239, 5400, 5559, 5718, 5877, 6037, 6195, 6356, 6516, 6675, 6835, 6994, 7154, 7313, 7476, 7633, 7792, 7953, 8111, 8272, 8432, 8589, 8749, 8910, 9071, 9229, 9388, 9546, 9707, 9865, 10026, 10184, 10345, 10506, 10663, 10824, 10981, 11143, 11304, 11460, 11621, 11781, 11939, 12099, 12260, 12419, 12580]
    hit0 = 1
    data1 = [0, 265, 293, 319, 347, 372, 403, 430, 458, 484, 510, 539, 566, 595, 620, 648, 675, 703, 728, 755, 782, 811, 840, 865, 891, 920, 948, 973, 1000, 1028, 1058, 1085, 1112, 1138, 1165, 1193, 1219, 1246, 1275, 1301, 1332, 1356, 1383, 1409, 1437, 1464, 1493, 1521, 1547, 1576, 1602, 1629, 1655, 1684, 1709, 1740, 1766, 1794, 1821, 1847, 1874, 1902, 1931, 1956, 1984, 2012, 2039, 2064, 2092, 2118, 2149]
    hit1 = 4
    TP成长 = 0.1
    TP上限 = 7


class 技能1(主动技能):
    名称 = "旋转源能波"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [23, 241]
    无色消耗 = 0
    data0 = [0, 576, 639, 696, 755, 815, 871, 931, 991, 1052, 1109, 1166, 1227, 1289, 1345, 1406, 1463, 1520, 1582, 1641, 1700, 1758, 1817, 1877, 1938, 1996, 2053, 2113, 2171, 2230, 2292, 2350, 2407, 2468, 2525, 2584, 2644, 2705, 2763, 2820, 2881, 2941, 3001, 3058, 3117, 3178, 3232, 3293, 3353, 3414, 3472, 3527, 3590, 3648, 3708, 3766, 3825, 3883, 3946, 4003, 4062, 4122, 4180, 4241, 4298, 4358, 4418, 4476, 4536, 4594, 4654]
    hit0 = 1
    data1 = [0, 820, 905, 990, 1073, 1158, 1243, 1324, 1409, 1494, 1575, 1658, 1745, 1830, 1912, 1997, 2082, 2162, 2247, 2331, 2414, 2497, 2581, 2665, 2751, 2834, 2919, 3004, 3085, 3169, 3254, 3338, 3418, 3502, 3588, 3672, 3756, 3839, 3923, 4008, 4092, 4175, 4259, 4341, 4426, 4513, 4594, 4679, 4762, 4843, 4927, 5014, 5098, 5179, 5263, 5348, 5430, 5517, 5602, 5683, 5769, 5854, 5938, 6022, 6105, 6191, 6274, 6360, 6444, 6529, 6611]
    hit1 = 4
    TP成长 = 0.1
    TP上限 = 7


class 技能2(主动技能):
    名称 = "源能护盾"
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 10
    MP = [23, 241]
    无色消耗 = 0
    data0 = [0, 5571, 6135, 7266, 7829, 8397, 8961, 9525, 10091, 10658, 11226, 11788, 12354, 12919, 13484, 14050, 14615, 15178, 15745, 16311, 16874, 17441, 18006, 18576, 19137, 19703, 20268, 20833, 21399, 21965, 22526, 23093, 23660, 24227, 24790, 25356, 25923, 26487, 27052, 27618, 28182, 28748, 29315, 29877, 30443, 31009, 31576, 32139, 32703, 33272, 33836, 34401, 34968, 35531, 36097, 36665, 37226, 37792, 38357, 38925, 39489, 40053, 40622, 41182, 41750, 42317, 42880, 43446, 44014, 44576, 45142]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能3(主动技能):
    名称 = "镭射源能枪"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [36, 378]
    无色消耗 = 0
    data0 = [0, 1006, 1109, 1210, 1315, 1415, 1518, 1621, 1723, 1824, 1928, 2028, 2132, 2233, 2337, 2439, 2541, 2645, 2744, 2847, 2950, 3052, 3153, 3258, 3358, 3462, 3564, 3666, 3767, 3870, 3972, 4075, 4176, 4281, 4382, 4483, 4587, 4688, 4791, 4894, 4996, 5098, 5201, 5303, 5404, 5506, 5611, 5711, 5813, 5918, 6018, 6120, 6224, 6327, 6428, 6532, 6633, 6736, 6837, 6942, 7041, 7143, 7247, 7348, 7451, 7553, 7656, 7757, 7861, 7963, 8065]
    hit0 = 2
    data1 = [0, 2920, 3216, 3513, 3808, 4107, 4403, 4698, 4995, 5292, 5588, 5884, 6181, 6476, 6774, 7070, 7364, 7663, 7960, 8256, 8552, 8849, 9143, 9442, 9738, 10034, 10330, 10626, 10924, 11220, 11518, 11812, 12110, 12406, 12704, 12998, 13295, 13593, 13887, 14185, 14483, 14779, 15075, 15372, 15667, 15965, 16261, 16556, 16853, 17150, 17446, 17742, 18040, 18335, 18633, 18929, 19224, 19521, 19818, 20114, 20410, 20706, 21002, 21299, 21596, 21892, 22188, 22484, 22781, 23077, 23374]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能4(被动技能):
    名称 = '源力剑精通'
    所在等级 = 20
    等级上限 = 30
    基础等级 = 20

    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        if self.等级 <= 20:
            return round(1 + (0.05 + 0.01 * self.等级), 5)
        else:
            return round(1 + (0.25 + 0.02 * (self.等级 - 20)), 5)


class 技能5(主动技能):
    名称 = "源能波刃"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7.5
    MP = [55, 396]
    无色消耗 = 0
    data0 = [0, 3044, 3353, 3663, 3974, 4283, 4590, 4900, 5210, 5519, 5830, 6136, 6446, 6758, 7067, 7376, 7685, 7993, 8304, 8612, 8920, 9230, 9537, 9850, 10159, 10468, 10777, 11085, 11397, 11706, 12015, 12323, 12632, 12943, 13253, 13560, 13870, 14179, 14489, 14796, 15107, 15415, 15723, 16035, 16344, 16655, 16964, 17272, 17582, 17890, 18201, 18509, 18817, 19127, 19436, 19748, 20056, 20366, 20673, 20981, 21292, 21602, 21911, 22220, 22530, 22838, 23148, 23457, 23767, 24076, 24386]
    hit0 = 1
    data1 = [0, 2490, 2743, 2995, 3250, 3503, 3756, 4008, 4262, 4515, 4769, 5021, 5275, 5527, 5781, 6033, 6288, 6540, 6792, 7046, 7298, 7552, 7805, 8058, 8310, 8563, 8819, 9071, 9323, 9576, 9828, 10080, 10336, 10588, 10842, 11094, 11347, 11598, 11855, 12106, 12361, 12614, 12866, 13118, 13371, 13623, 13878, 14132, 14383, 14639, 14890, 15143, 15395, 15650, 15902, 16157, 16409, 16660, 16914, 17166, 17418, 17672, 17926, 18179, 18431, 18684, 18937, 19190, 19442, 19696, 19949]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能6(主动技能):
    名称 = "能量飞鱼弹"
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6.5
    MP = [52, 369]
    无色消耗 = 0
    data0 = [0, 6029, 6641, 7255, 7865, 8478, 9090, 9705, 10312, 10928, 11539, 12149, 12761, 13375, 13986, 14598, 15211, 15824, 16436, 17047, 17659, 18272, 18883, 19495, 20107, 20721, 21331, 21944, 22556, 23169, 23780, 24393, 25005, 25616, 26228, 26842, 27452, 28066, 28677, 29290, 29899, 30514, 31125, 31739, 32349, 32962, 33575, 34188, 34796, 35410, 36023, 36634, 37246, 37861, 38471, 39082, 39695, 40309, 40918, 41532, 42145, 42756, 43369, 43980, 44593, 45205, 45817, 46429, 47042, 47654, 48267]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能7(被动技能):
    名称 = '细胞弱化'
    所在等级 = 25
    等级上限 = 11
    基础等级 = 1

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.23 + 0.02 * self.等级, 5)


class 技能8(主动技能):
    名称 = "脉冲斩"
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [67, 475]
    无色消耗 = 0
    data0 = [0, 1884, 2076, 2268, 2458, 2651, 2842, 3032, 3226, 3415, 3609, 3798, 3991, 4183, 4371, 4566, 4755, 4949, 5140, 5331, 5522, 5714, 5906, 6096, 6287, 6479, 6671, 6862, 7055, 7249, 7439, 7629, 7821, 8012, 8205, 8396, 8585, 8778, 8968, 9161, 9352, 9542, 9735, 9925, 10118, 10309, 10503, 10692, 10885, 11076, 11269, 11459, 11649, 11842, 12033, 12225, 12416, 12607, 12798, 12992, 13182, 13373, 13565, 13756, 13948, 14140, 14330, 14522, 14714, 14905, 15096]
    hit0 = 4
    TP成长 = 0.1
    TP上限 = 7


class 技能9(主动技能):
    名称 = "电磁领域"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [145, 1218]
    无色消耗 = 1
    data0 = [0, 1743, 1919, 2098, 2276, 2452, 2629, 2806, 2983, 3160, 3338, 3517, 3694, 3871, 4047, 4225, 4403, 4579, 4757, 4933, 5111, 5285, 5463, 5642, 5822, 5999, 6175, 6353, 6530, 6708, 6882, 7059, 7237, 7415, 7592, 7770, 7947, 8125, 8298, 8476, 8654, 8833, 9012, 9189, 9365, 9542, 9720, 9896, 10073, 10250, 10427, 10602, 10782, 10959, 11138, 11314, 11491, 11668, 11846, 12022, 12199, 12377, 12554, 12731, 12909, 13085, 13262, 13439, 13616, 13793, 13971]
    hit0 = 5
    data1 = [0, 3739, 4118, 4500, 4878, 5258, 5640, 6019, 6398, 6780, 7159, 7541, 7917, 8296, 8676, 9056, 9435, 9818, 10197, 10576, 10957, 11336, 11715, 12095, 12475, 12855, 13234, 13613, 13993, 14373, 14752, 15135, 15515, 15893, 16273, 16653, 17031, 17412, 17790, 18172, 18551, 18930, 19313, 19692, 20069, 20449, 20831, 21209, 21590, 21970, 22349, 22728, 23107, 23490, 23868, 24246, 24629, 25008, 25386, 25767, 26148, 26527, 26908, 27287, 27667, 28048, 28427, 28808, 29187, 29567, 29947]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5


class 技能10(主动技能):
    名称 = "引力源光弹"
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [145, 1218]
    无色消耗 = 1
    data0 = [0, 1187, 1304, 1430, 1547, 1668, 1791, 1910, 2030, 2151, 2272, 2393, 2513, 2632, 2755, 2875, 2995, 3117, 3239, 3358, 3480, 3598, 3721, 3842, 3962, 4082, 4202, 4324, 4444, 4568, 4687, 4808, 4928, 5050, 5168, 5290, 5409, 5533, 5650, 5772, 5888, 6012, 6135, 6254, 6377, 6498, 6617, 6739, 6862, 6978, 7101, 7219, 7341, 7463, 7583, 7701, 7824, 7946, 8066, 8186, 8308, 8429, 8550, 8671, 8791, 8912, 9034, 9154, 9275, 9397, 9517]
    hit0 = 8
    data1 = [0, 3352, 3696, 4035, 4372, 4713, 5054, 5395, 5737, 6077, 6417, 6758, 7099, 7438, 7779, 8120, 8460, 8802, 9143, 9481, 9824, 10164, 10507, 10843, 11184, 11526, 11866, 12208, 12545, 12885, 13228, 13569, 13911, 14250, 14589, 14931, 15275, 15614, 15953, 16295, 16633, 16974, 17317, 17654, 17996, 18338, 18675, 19016, 19358, 19697, 20039, 20381, 20720, 21059, 21403, 21742, 22083, 22423, 22763, 23106, 23446, 23786, 24127, 24467, 24807, 25148, 25489, 25830, 26170, 26511, 26853]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    额外倍率 = 1.0
    是否有护石 = 1
    技能施放时间 = 1

    形态 = ["常规", "注能"]

    def 形态变更(self, 形态, char: Character):
        if (形态 == '' or 形态 not in self.形态) and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "注能":
            if '引力源光弹' in char.护石栏:
                self.额外倍率 = 1.3
            else:
                形态 = "常规"
        if 形态 == "常规":
            self.额外倍率 = 1.0

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv)*self.额外倍率

    def 装备护石(self, char):
        self.power1 = 1.6


class 技能11(主动技能):
    名称 = "光裂斩"
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 25
    MP = [193, 1621]
    无色消耗 = 1
    data0 = [0, 11464, 12628, 13791, 14956, 16119, 17283, 18445, 19607, 20772, 21933, 23100, 24264, 25423, 26588, 27754, 28918, 30081, 31243, 32406, 33568, 34734, 35898, 37061, 38223, 39387, 40551, 41714, 42878, 44043, 45203, 46367, 47531, 48693, 49860, 51023, 52185, 53347, 54513, 55676, 56841, 58003, 59165, 60330, 61493, 62655, 63820, 64987, 66146, 67310, 68473, 69634, 70804, 71965, 73128, 74291, 75455, 76620, 77781, 78943, 80109, 81273, 82436, 83599, 84763, 85927, 87091, 88254, 89417, 90581, 91745]
    hit0 = 1
    data1 = [0, 1525, 1679, 1835, 1989, 2146, 2298, 2457, 2614, 2764, 2919, 3075, 3231, 3385, 3543, 3700, 3854, 4009, 4161, 4318, 4472, 4628, 4783, 4938, 5093, 5249, 5405, 5558, 5711, 5869, 6023, 6179, 6335, 6489, 6644, 6800, 6953, 7109, 7264, 7421, 7573, 7731, 7885, 8042, 8196, 8350, 8504, 8662, 8817, 8973, 9127, 9283, 9438, 9589, 9746, 9900, 10057, 10211, 10368, 10521, 10678, 10832, 10987, 11141, 11297, 11451, 11607, 11761, 11917, 12071, 12229]
    hit1 = 5
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.98*1.14
        self.hit1 = 0


class 技能12(主动技能):
    名称 = "光导裂地斩"
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [338, 2839]
    无色消耗 = 2
    data0 = [0, 13020, 14340, 15663, 16982, 18304, 19626, 20948, 22269, 23591, 24912, 26233, 27553, 28877, 30198, 31517, 32842, 34160, 35483, 36805, 38125, 39446, 40770, 42088, 43411, 44732, 46055, 47374, 48697, 50019, 51337, 52662, 53983, 55301, 56623, 57945, 59266, 60585, 61910, 63227, 64549, 65874, 67195, 68514, 69839, 71159, 72479, 73800, 75124, 76443, 77764, 79088, 80405, 81729, 83051, 84371, 85694, 87017, 88336, 89658, 90978, 92300, 93622, 94942, 96264, 97585, 98906, 100228, 101550, 102871, 104192]
    hit0 = 1
    data1 = [0, 19826, 21838, 23851, 25862, 27872, 29885, 31898, 33910, 35923, 37934, 39947, 41957, 43969, 45979, 47993, 50006, 52018, 54029, 56041, 58052, 60066, 62077, 64087, 66097, 68113, 70125, 72134, 74148, 76160, 78171, 80182, 82194, 84207, 86220, 88230, 90242, 92254, 94266, 96280, 98290, 100302, 102314, 104327, 106339, 108349, 110363, 112374, 114384, 116398, 118409, 120422, 122436, 124447, 126459, 128469, 130482, 132491, 134503, 136515, 138527, 140539, 142549, 144560, 146573, 148583, 150596, 152607, 154618, 156631, 158641]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1.17
        self.power1 = 1.33


class 技能13(被动技能):
    名称 = '源能增幅'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025 + 0.02 * self.等级, 5)


class 技能14(主动技能):
    名称 = "超能场域"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [1129, 9483]
    无色消耗 = 5
    data0 = [0, 1064, 1309, 1557, 1802, 2049, 2298, 2544, 2793, 3036, 3283, 3532, 3780, 4028, 4276, 4519, 4768, 5014, 5263, 5509, 5758, 6003, 6249, 6498, 6745, 6993, 7241, 7484, 7731, 7980, 8226, 8476, 8723, 8969, 9216, 9462, 9710, 9958, 10204, 10452, 10696, 10945, 11192, 11438, 11685, 11931, 12180, 12426, 12672, 12919, 13166]
    hit0 = 14
    data1 = [0, 54243, 66822, 79399, 91978, 104560, 117138, 129718, 142298, 170362, 184201, 198038, 211874, 225712, 239550, 253386, 267223, 281059, 294899, 308735, 322572, 336406, 350244, 364080, 377918, 391754, 405591, 419427, 433268, 447104, 460941, 474776, 488614, 502451, 516288, 530124, 543963, 557802, 571637, 585474, 599310, 613148, 626984, 640821, 654657, 668494, 682332, 696168, 710005, 723842, 737677]
    hit1 = 1

    形态 = ["速C", "能源"]

    def 形态变更(self, 形态, char: Character):
        if (形态 == '' or 形态 not in self.形态) and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "速C":
            self.hit0 = 14
            self.hit1 = 1
        if 形态 == "能源":
            self.hit0 = 25
            self.hit1 = 1


class 技能15(主动技能):
    名称 = "能量禁锢"
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 25
    MP = [378, 1058]
    无色消耗 = 1
    data0 = [0, 1198, 1320, 1445, 1566, 1687, 1809, 1930, 2054, 2175, 2297, 2419, 2541, 2662, 2786, 2905, 3026, 3149, 3271, 3394, 3516, 3637, 3758, 3881, 4002, 4125, 4247, 4369, 4490, 4612, 4735, 4858, 4981, 5103, 5224, 5347, 5467, 5588, 5712, 5832, 5956, 6077, 6199, 6321, 6444, 6564, 6686, 6808, 6930, 7053, 7174]
    hit0 = 10
    data1 = [0, 7209, 7940, 8670, 9402, 10133, 10866, 11599, 12330, 13063, 13792, 14524, 15256, 15988, 16719, 17451, 18182, 18913, 19648, 20378, 21110, 21840, 22572, 23305, 24034, 24769, 25501, 26229, 26963, 27694, 28426, 29158, 29890, 30622, 31352, 32083, 32816, 33550, 34280, 35012, 35743, 36473, 37206, 37936, 38671, 39402, 40133, 40865, 41595, 42328, 43061]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 14
        self.power0 = 0.89
        self.power1 = 1.66


class 技能16(主动技能):
    名称 = "离散能量波"
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [776, 1629]
    无色消耗 = 2
    data0 = [0, 3444, 3793, 4142, 4489, 4841, 5192, 5542, 5890, 6239, 6588, 6937, 7289, 7638, 7985, 8338, 8686, 9039, 9387, 9735, 10085, 10432, 10783, 11134, 11484, 11833, 12182, 12530, 12885, 13231, 13579, 13930, 14278, 14631, 14978, 15331, 15678, 16027, 16380, 16728, 17077, 17424, 17775, 18124, 18474, 18826, 19174, 19523, 19874, 20225, 20575]
    hit0 = 10
    data1 = [0, 14765, 16262, 17762, 19261, 20758, 22258, 23754, 25254, 26750, 28251, 29747, 31246, 32748, 34243, 35741, 37238, 38740, 40236, 41734, 43231, 44731, 46230, 47727, 49225, 50724, 52222, 53721, 55220, 56717, 58215, 59715, 61212, 62710, 64207, 65709, 67206, 68702, 70201, 71702, 73200, 74698, 76195, 77694, 79191, 80690, 82190, 83686, 85185, 86682, 88183]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 15
        self.power0 = 0.75
        self.power1 = 1.66
        self.CDR *= 0.9


class 技能17(主动技能):
    名称 = "绝望圆舞"
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [642, 4975]
    无色消耗 = 3
    data0 = [0, 6919, 7622, 8326, 9029, 9730, 10432, 11136, 11839, 12543, 13243, 13946, 14648, 15351, 16054, 16756, 17458, 18159, 18864, 19564, 20267, 20969, 21672, 22375, 23076, 23780, 24486, 25188, 25886, 26589, 27292, 27997, 28698, 29399, 30102, 30807, 31508, 32208, 32911, 33614, 34317, 35020, 35725, 36426, 37129, 37831, 38535, 39234, 39936, 40640, 41343]
    hit0 = 8
    data1 = [0, 23739, 26145, 28555, 30960, 33372, 35780, 38188, 40594, 43010, 45414, 47822, 50229, 52640, 55049, 57456, 59865, 62276, 64683, 67092, 69501, 71909, 74316, 76726, 79132, 81544, 83949, 86359, 88767, 91177, 93584, 95993, 98402, 100809, 103218, 105624, 108038, 110445, 112854, 115261, 117672, 120078, 122488, 124895, 127305, 129713, 132122, 134529, 136939, 139348, 141755]
    hit1 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 = 1.35


class 技能18(被动技能):
    名称 = '源力汇聚'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 技能19(主动技能):
    名称 = "CEAB-2超能爆发"
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [930, 6975]
    无色消耗 = 5
    data0 = [0, 88181, 97128, 106071, 115020, 123966, 132912, 141859, 150807, 159752, 168696, 177644, 186591, 195535, 204482, 213427, 222375, 231322, 240268, 249211, 258158, 267107, 276052, 285001, 293946, 302892, 311839, 320783, 329729, 338676, 347623, 356568, 365516, 374463, 383406, 392352, 401299, 410246, 419193, 428141, 437088, 446032, 454978, 463927, 472873, 481816, 490762, 499710, 508657, 517603, 526547]
    hit0 = 1

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 = 1.39
        self.CDR *= 0.9


class 技能20(主动技能):
    名称 = "终焉：超世界崩坏"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2633, 5266]
    无色消耗 = 10
    data0 = [0, 1760, 2163, 2572, 2983, 3394, 3799, 4207, 4616, 5024, 5433, 5840, 6250, 6657, 7064, 7474, 7885, 8290, 8699, 9110, 9517, 9924, 10333, 10742, 11149, 11559, 11965, 12374, 12782, 13190, 13602, 14006, 14414, 14824, 15233, 15641, 16050, 16458, 16867, 17275, 17683, 18090, 18499, 18907, 19318, 19727, 20131, 20540, 20951, 21359, 21768]
    hit0 = 6
    data1 = [0, 164986, 203247, 241507, 279764, 318026, 356283, 394541, 432803, 471059, 509316, 547577, 585836, 624094, 662355, 700612, 738872, 777132, 815390, 853650, 891908, 930169, 968425, 1006684, 1044943, 1083202, 1121462, 1159721, 1197980, 1236238, 1274497, 1312756, 1351016, 1389276, 1427533, 1465789, 1504050, 1542308, 1580568, 1618827, 1657086, 1695345, 1733606, 1771863, 1810123, 1848381, 1886642, 1924899, 1963156, 2001416, 2039674]
    hit1 = 1

    形态 = ["速C", "满"]

    def 形态变更(self, 形态, char: Character):
        if (形态 == '' or 形态 not in self.形态) and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "速C":
            self.hit0 = 6
            self.hit1 = 1
        if 形态 == "满":
            self.hit0 = 14
            self.hit1 = 1


class 技能21(主动技能):
    名称 = "临界源能弹"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [800, 6667]
    无色消耗 = 7
    data0 = [0, 29975, 33015, 36055, 39095, 42137, 45178, 48221, 51260, 54302, 57343, 60387, 63427, 66465, 69507, 72548, 75588, 78631, 81672, 84713, 87754, 90792, 93834, 96877, 99919, 102959, 105999, 109040, 112084, 115125, 118163, 121204, 124245, 127286, 130330, 133371, 136410, 139451, 142493, 145535, 148573, 151615, 154656, 157698, 160741, 163783, 166822, 169861, 172903, 175944, 178986]
    hit0 = 5
    data1 = [0, 166534, 183425, 200321, 217215, 234111, 251005, 267900, 284793, 301691, 318587, 335481, 352374, 369268, 386164, 403059, 419954, 436849, 453743, 470639, 487533, 504429, 521322, 538217, 555113, 572007, 588903, 605796, 622692, 639587, 656482, 673378, 690269, 707166, 724060, 740957, 757853, 774744, 791641, 808535, 825431, 842324, 859219, 876114, 893009, 909905, 926799, 943694, 960586, 977482, 994378]
    hit1 = 0

    形态 = ["常规", "能源"]

    def 形态变更(self, 形态, char: Character):
        if (形态 == '' or 形态 not in self.形态) and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "常规":
            self.hit0 = 5
            self.hit1 = 0
        if 形态 == "能源":
            self.hit0 = 0
            self.hit1 = 1


class 技能22(被动技能):
    名称 = '奇点源核'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能23(主动技能):
    名称 = "源能场域：黑暗边缘"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4028, 8056]
    无色消耗 = 15
    data0 = [0, 516730, 636553, 756375, 876199, 996022, 1115844, 1235666, 1355488, 1475312, 1595132, 1714956, 1834776, 1954600, 2074422, 2194245, 2314066, 2433888, 2553711, 2673534, 2793356, 2913178, 3033000, 3152823, 3272646, 3392467, 3512289, 3632112, 3751934, 3871756, 3991578, 4111403, 4231224, 4351048, 4470870, 4590692, 4710514, 4830337, 4950160, 5069982, 5189804, 5309626, 5429448, 5549268, 5669092, 5788914, 5908737, 6028560, 6148382, 6268204, 6388026]
    hit0 = 1


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'specialist'
        self.名称 = '苍暮·源能专家'
        self.角色 = '枪剑士'
        self.角色类型 = '输出'
        self.职业 = '源能专家'
        self.武器选项 = ['源力剑']
        self.输出类型选项 = ['魔法百分比']
        self.防具精通属性 = ['智力']
        self.类型 = '魔法百分比'
        self.武器类型 = '源力剑'
        self.防具类型 = '布甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.00

        super().__init__(equVersion)
